package com.health.api.model.transporter;


import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * @author zhexueqi
 * @ClassName TransporterRegisterRequest
 * @since 2024/8/30    16:34
 */
@Data
public class TransporterRegisterRequest {


    /**
     * 运输单位名称
     */
    @NotBlank(message = "运输单位名称不能为空")
    @Schema(description = "运输单位名称")
    private String name;

    /**
     * 运输商账号
     */
    @NotBlank(message = "运输商账号不能为空")
    @Schema(description = "运输商账号")
    private String transportAccount;

    /**
     * 密码
     */
    @NotBlank(message = "密码不能为空")
    @Schema(description = "密码")
    private String password;

    /**
     * 联系人姓名
     */
    @NotBlank(message = "联系人姓名不能为空")
    @Schema(description = "联系人姓名")
    private String contactPerson;

    /**
     * 联系电话
     */
    @NotBlank(message = "联系电话不能为空")
    @Schema(description = "联系电话")
    private String contactPhone;

    /**
     * 联系邮箱
     */
    @NotBlank(message = "联系邮箱不能为空")
    @Schema(description = "联系邮箱")
    private String contactEmail;

    /**
     * 运输单位地址
     */
    @NotBlank(message = "运输单位地址不能为空")
    @Schema(description = "运输单位地址")
    private String address;

    /**
     * 运输单位的注册编号
     */
    @NotBlank(message = "运输单位注册编号不能为空")
    @Schema(description = "运输单位注册编号")
    private String registrationNumber;

    /**
     * 运输类型
     */
    @NotNull(message = "运输类型不能为空")
    @Schema(description = "运输类型")
    private Integer transportType;

    /**
     * 可用车辆数量
     */
    @NotNull(message = "可用车辆数量不能为空")
    @Schema(description = "可用车辆数量")
    private Integer availableVehicles;

    /**
     * 许可证有效期
     */
    @NotNull(message = "许可证有效期不能为空")
    @Schema(description = "许可证有效期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime licenseValidityDate;

    /**
     * 保险详情
     */
    private String insuranceDetails;

    /**
     * 运输单位状态
     */
    @Schema(description = "运输单位状态")
    private Integer status = 0;
}
